import request from '@/utils/request'

/**
 * 学生管理相关接口
 */

export default {
  /**
   * 获取学生列表
   * @param {Object} params 查询参数 {name, phone, status, page, page_size}
   * @returns Promise
   */
  getStudentList(params) {
    return request({
      url: '/teacher/students',
      method: 'get',
      params
    })
  },

  /**
   * 新增学生
   * @param {Object} data 学生数据 {username, password, name, phone, avatar, id_card, status}
   * @returns Promise
   */
  createStudent(data) {
    return request({
      url: '/teacher/students',
      method: 'post',
      data
    })
  },

  /**
   * 编辑学生
   * @param {Object} data 学生数据 {id, username, name, phone, avatar, id_card, status}
   * @returns Promise
   */
  updateStudent(data) {
    return request({
      url: '/teacher/students/',
      method: 'put',
      data
    })
  },

  /**
   * 删除学生
   * @param {Number} id 学生ID
   * @returns Promise
   */
  deleteStudent(id) {
    return request({
      url: `/teacher/students/${id}`,
      method: 'delete'
    })
  },

  /**
   * 获取可绑定的课程列表
   * @returns Promise
   */
  getAvailableCourses() {
    return request({
      url: '/teacher/students/available-courses',
      method: 'get'
    })
  },

  /**
   * 获取学生已绑定的课程列表
   * @param {Number} id 学生ID
   * @returns Promise
   */
  getBoundCourses(id) {
    return request({
      url: `/teacher/students/${id}/courses`,
      method: 'get'
    })
  },

  /**
   * 绑定课程
   * @param {Object} data {student_id, course_id, start_time}
   * @returns Promise
   */
  bindCourse(data) {
    return request({
      url: '/teacher/students/bind-course',
      method: 'post',
      data
    })
  },

  /**
   * 取消绑定课程
   * @param {Object} data {student_id, course_id, start_time}
   * @returns Promise
   */
  unbindCourse(data) {
    return request({
      url: '/teacher/students/unbind-course',
      method: 'delete',
      data
    })
  }
}